\section{Serveur Class Reference}
\label{classServeur}\index{Serveur@{Serveur}}
\doxyref{Serveur}{p.}{classServeur} multiport principal du jeux.  


Inheritance diagram for Serveur:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=49pt]{classServeur__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for Serveur:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=82pt]{classServeur__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
virtual void {\bf traitementEcouteServeurPartie} ()\label{classServeur_da82a293a465512e89db68bee4baf077}

\begin{CompactList}\small\item\em Lance le thread d'écoute de nouveaux serveurs de partie. \item\end{CompactList}\item 
virtual void {\bf traitementNouveauServeurPartie} ()\label{classServeur_3b69d55120afbd969896e156f8a5eff9}

\begin{CompactList}\small\item\em Lance le thread d'écoute de traitements des serveurs de partie. \item\end{CompactList}\item 
virtual void {\bf traitementEcouteClient} ()\label{classServeur_464271dd1c2b3ef8384d9aa2e93f8162}

\begin{CompactList}\small\item\em Lance le thread d'écoute de nouveaux clients. \item\end{CompactList}\item 
virtual void {\bf traitementClient} ()\label{classServeur_4e0cad1a2cae784bc8b46d8166a73d6d}

\begin{CompactList}\small\item\em Lance le thread d'écoute de traitements des clients. \item\end{CompactList}\item 
virtual void {\bf traitementLectureServeurPartie} ()\label{classServeur_92823b0441e2695d26e17cd615e707f4}

\begin{CompactList}\small\item\em Lance le thread de lecture des serveurs de partie. \item\end{CompactList}\item 
virtual void {\bf traitementServeurPartie} ()\label{classServeur_4dd45fba5527f23ac1200f23f834373c}

\begin{CompactList}\small\item\em Lance le thread de traitement des serveurs de partie. \item\end{CompactList}\item 
virtual void {\bf traitementTestServeurPartie} ()\label{classServeur_823c92ccc967c37e56b965ad50142391}

\begin{CompactList}\small\item\em Lance le thread de test de présence des serveurs de partiee. \item\end{CompactList}\item 
virtual void {\bf traitementJeton} ()\label{classServeur_be190dbb3d369b60745dd1feb11da798}

\begin{CompactList}\small\item\em Lance le thread de renouvellement du jeton. \item\end{CompactList}\item 
int $\ast$ {\bf connectionServeurPartie} ()
\begin{CompactList}\small\item\em Attend la connection d'un serveur de partie. \item\end{CompactList}\item 
int $\ast$ {\bf connectionClient} ()
\begin{CompactList}\small\item\em Attend la connexion d'un client. \item\end{CompactList}\item 
void $\ast$ {\bf traiterNouveauServeurPartie} ()
\begin{CompactList}\small\item\em Traite la connection d'un serveur de partie. \item\end{CompactList}\item 
void $\ast$ {\bf traiterServeurPartie} ()
\begin{CompactList}\small\item\em Traite les messages des serveurs de partie. \item\end{CompactList}\item 
void $\ast$ {\bf traiterClient} ()
\item 
int $\ast$ {\bf lectureServeurPartie} ()
\begin{CompactList}\small\item\em Attend les messages des serveurs de partie. \item\end{CompactList}\item 
void $\ast$ {\bf testPresenceServeur} ()
\begin{CompactList}\small\item\em Test si un serveur de partie n'a pas planté. \item\end{CompactList}\item 
void $\ast$ {\bf sendJeton} ()
\begin{CompactList}\small\item\em Envoie le nouveau jeton aux serveurs de partie. \item\end{CompactList}\item 
string {\bf seekUser} (string login)
\begin{CompactList}\small\item\em Recherche un utilisateur. \item\end{CompactList}\item 
void {\bf registerUser} (string login, string code)
\begin{CompactList}\small\item\em Enregistre un utilisateur dans le ficher. \item\end{CompactList}\item 
void {\bf unRegisterUser} (string login)
\begin{CompactList}\small\item\em Supprime l'utilisateur de la liste des joueurs. \item\end{CompactList}\item 
void $\ast$ {\bf infoGame} ()\label{classServeur_3f104343cddc45ba87132a8a41d757dd}

\begin{CompactList}\small\item\em Demande aux serveurs de partie des renseignements sur leur états (nombre de joueurs, ports, etc.). \item\end{CompactList}\item 
int {\bf addGame} ({\bf Partie} partie)
\begin{CompactList}\small\item\em Ajoute un serveur de partie à la liste des jeux. \item\end{CompactList}\item 
int {\bf delGame} (string adresse)
\begin{CompactList}\small\item\em Supprime un serveur de partie à la liste des jeux. \item\end{CompactList}\item 
int {\bf getNumberOfGame} ()
\begin{CompactList}\small\item\em Renvoie le nombre de partie en cours. \item\end{CompactList}\item 
void {\bf log} (string message)
\begin{CompactList}\small\item\em Écrit dans un fichier de log les événements particuliers d'une partie. \item\end{CompactList}\item 
int {\bf createSock} (u\_\-short port)
\begin{CompactList}\small\item\em Crée simplement un socket. \item\end{CompactList}\item 
void {\bf close\_\-serveur} (int sock)
\begin{CompactList}\small\item\em Ferme un socket. \item\end{CompactList}\end{CompactItemize}
\subsection*{Static Public Member Functions}
\begin{CompactItemize}
\item 
static {\bf Serveur} $\ast$ {\bf getInstance} (u\_\-short portServeurPartie, u\_\-short portLecture, u\_\-short portEcouteClientServeurPartie, u\_\-short portLectureServeurPartie, u\_\-short portEcouteServeurPartie)
\begin{CompactList}\small\item\em Fonction permettant de récupérer l'instance unique de la classe \doxyref{Serveur}{p.}{classServeur}. \item\end{CompactList}\item 
static void {\bf kill} ()
\begin{CompactList}\small\item\em Fait pointer le singleton sur NULL. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
\doxyref{Serveur}{p.}{classServeur} multiport principal du jeux. 

\begin{Desc}
\item[Date:]2007\end{Desc}
\doxyref{Serveur}{p.}{classServeur} principal du jeu. Ne peut être instancié qu'une seule fois. Hérite de la classe Thread. Gere les differents serveurs de partie 

\subsection{Member Function Documentation}
\index{Serveur@{Serveur}!getInstance@{getInstance}}
\index{getInstance@{getInstance}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Serveur} $\ast$ Serveur::getInstance (u\_\-short {\em portServeurPartie}, u\_\-short {\em portLecture}, u\_\-short {\em portEcouteClientServeurPartie}, u\_\-short {\em portLectureServeurPartie}, u\_\-short {\em portEcouteServeurPartie})\hspace{0.3cm}{\tt  [static]}}\label{classServeur_e02d18a66c8c834127b5a3e650d8e701}


Fonction permettant de récupérer l'instance unique de la classe \doxyref{Serveur}{p.}{classServeur}. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em portServeurPartie}]Port d'attente des serveurs de partie. \item[{\em portLecture}]Port d'attente des clients. \item[{\em portEcouteClientServeurPartie}]Port d'ecoute des clients des serveurs de partie. \item[{\em portLectureServeurPartie}]Port de lecture des messages des serveurs de partie. \item[{\em portEcouteServeurPartie}]Port d'ecoute du serveur de partie distant. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Le singleton serveur de partie. \end{Desc}
\index{Serveur@{Serveur}!kill@{kill}}
\index{kill@{kill}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Serveur::kill ()\hspace{0.3cm}{\tt  [static]}}\label{classServeur_5c2c09ce4e2f2337498be571619f22e5}


Fait pointer le singleton sur NULL. 

Pour une future utilisation possible de la classe. \index{Serveur@{Serveur}!connectionServeurPartie@{connectionServeurPartie}}
\index{connectionServeurPartie@{connectionServeurPartie}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int $\ast$ Serveur::connectionServeurPartie ()}\label{classServeur_0970ca6fe420591b2a08cf5a212e0663}


Attend la connection d'un serveur de partie. 

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!connectionClient@{connectionClient}}
\index{connectionClient@{connectionClient}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int $\ast$ Serveur::connectionClient ()}\label{classServeur_bd16eb7450733853c74e80f7b3c0cf1c}


Attend la connexion d'un client. 

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!traiterNouveauServeurPartie@{traiterNouveauServeurPartie}}
\index{traiterNouveauServeurPartie@{traiterNouveauServeurPartie}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void $\ast$ Serveur::traiterNouveauServeurPartie ()}\label{classServeur_80a549325728ccd9887f4e2af480d244}


Traite la connection d'un serveur de partie. 

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!traiterServeurPartie@{traiterServeurPartie}}
\index{traiterServeurPartie@{traiterServeurPartie}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void $\ast$ Serveur::traiterServeurPartie ()}\label{classServeur_7ae69541f8681f63b03f17522186fc63}


Traite les messages des serveurs de partie. 

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!traiterClient@{traiterClient}}
\index{traiterClient@{traiterClient}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void $\ast$ Serveur::traiterClient ()}\label{classServeur_6d8d05ef1d15da74d484d5c998f0e573}


Traite la connection d'un client.

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!lectureServeurPartie@{lectureServeurPartie}}
\index{lectureServeurPartie@{lectureServeurPartie}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int $\ast$ Serveur::lectureServeurPartie ()}\label{classServeur_256b78c5b2746f288b774cddfa7d28b6}


Attend les messages des serveurs de partie. 

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!testPresenceServeur@{testPresenceServeur}}
\index{testPresenceServeur@{testPresenceServeur}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void $\ast$ Serveur::testPresenceServeur ()}\label{classServeur_b362482b75073789a8009798b3554af3}


Test si un serveur de partie n'a pas planté. 

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!sendJeton@{sendJeton}}
\index{sendJeton@{sendJeton}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void $\ast$ Serveur::sendJeton ()}\label{classServeur_b10e1a735480fbba56e4ede88d1ddba2}


Envoie le nouveau jeton aux serveurs de partie. 

Cette méthode est lancée dans un thread. \index{Serveur@{Serveur}!seekUser@{seekUser}}
\index{seekUser@{seekUser}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}string Serveur::seekUser (string {\em login})}\label{classServeur_a915d6b1dd774820793e423cc0178a5d}


Recherche un utilisateur. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em login}]Le login de l'utilisateur rechercher. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Le code de l'utilisateur s'il existe, la chaîne vide sinon. \end{Desc}
\index{Serveur@{Serveur}!registerUser@{registerUser}}
\index{registerUser@{registerUser}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Serveur::registerUser (string {\em login}, string {\em code})}\label{classServeur_441abfcf6289cdcfa83f44516bd9817a}


Enregistre un utilisateur dans le ficher. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em login}]Le login de l'utilisateur à créer. \item[{\em code}]Le code de l'utilisateur à créer. \end{description}
\end{Desc}
\index{Serveur@{Serveur}!unRegisterUser@{unRegisterUser}}
\index{unRegisterUser@{unRegisterUser}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Serveur::unRegisterUser (string {\em login})}\label{classServeur_74e471c3f783ae51a11fbeda14b22759}


Supprime l'utilisateur de la liste des joueurs. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em login}]Le login de l'utilisateur à désinscrire. \end{description}
\end{Desc}
\index{Serveur@{Serveur}!addGame@{addGame}}
\index{addGame@{addGame}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Serveur::addGame ({\bf Partie} {\em partie})}\label{classServeur_f9782fd4464515f32a606ec6997cd1b1}


Ajoute un serveur de partie à la liste des jeux. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em partie}]Un objet \doxyref{Partie}{p.}{classPartie} représentant la nouvelle partie. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Un entier indiquant si l'ajout s'est bien passé. \end{Desc}
\index{Serveur@{Serveur}!delGame@{delGame}}
\index{delGame@{delGame}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Serveur::delGame (string {\em adresse})}\label{classServeur_015ff576c7e73dd0f616dd642bb2f11b}


Supprime un serveur de partie à la liste des jeux. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em adresse}]L'adresse du joueur à supprimer de la partie. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Un entier indiquant si la suppression s'est bien passée. \end{Desc}
\index{Serveur@{Serveur}!getNumberOfGame@{getNumberOfGame}}
\index{getNumberOfGame@{getNumberOfGame}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Serveur::getNumberOfGame ()}\label{classServeur_f13f09ebc29c94522ec0d1489d86342c}


Renvoie le nombre de partie en cours. 

\begin{Desc}
\item[Returns:]Le nombre de partie. \end{Desc}
\index{Serveur@{Serveur}!log@{log}}
\index{log@{log}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Serveur::log (string {\em message})}\label{classServeur_eddd7991a947f6331dddce49b4135533}


Écrit dans un fichier de log les événements particuliers d'une partie. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em message}]Le message a logguer.\end{description}
\end{Desc}
Écrit à la fin du fichier sans écraser les données déjà présentes. \index{Serveur@{Serveur}!createSock@{createSock}}
\index{createSock@{createSock}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Serveur::createSock (u\_\-short {\em port})}\label{classServeur_197b1e56971e99fcc1764458fc79e10b}


Crée simplement un socket. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em port}]Le port du socket. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Un entier indiquand si la création s'est bien passée. \end{Desc}
\index{Serveur@{Serveur}!close\_\-serveur@{close\_\-serveur}}
\index{close\_\-serveur@{close\_\-serveur}!Serveur@{Serveur}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Serveur::close\_\-serveur (int {\em sock})}\label{classServeur_61dadee3df8d53439a5799a5d1e524a9}


Ferme un socket. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em sock}]Le socket à fermer. \end{description}
\end{Desc}


The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
/home/cedric/workspace/serveurPrincipal/serveur.h\item 
/home/cedric/workspace/serveurPrincipal/serveur.cpp\end{CompactItemize}
